// 导入vue实例对象
import Vue from 'vue'
// 导入'svg-icon'组件=》'@/components/SvgIcon.index.vue'
import SvgIcon from '@/components/SvgIcon'// svg component

// register globally
// 局部注册组件（组件名，组件实例对象）
Vue.component('svg-icon', SvgIcon)

// require.context：webpack上的api方法
/**
 * 参数1：所要遍历的文件夹
 * 参数2：是否遍历文件夹中子文件夹
 * 参数3：正则表达式：匹配以什么为结尾的文件
 * 作用：1. 在组件内引入多个组件
 *       2.在main.js中引入大量公共组件
 *       3.引入项目中所有的svg文件
 *       4.注册全局组件
 *       5.引入vuex的module
 */
const req = require.context('./svg', false, /\.svg$/)
// require.context:有三个方法
// keys 也是一个函数，它返回一个数组，由所有可能被上下文模块处理的请求组成。
const requireAll = requireContext => {
  // requireContext.keys() 调用后再次返回数组，自动引入匹配的文件
  // console.log(requireContext.keys())  =》['./dashboard.svg', './example.svg', './eye-open.svg', ...]
  // 作用：让每个svg文件被导入到webpack中当做模板生效
  // console.log(requireContext.keys().map(requireContext))
  return requireContext.keys().map(requireContext)
}
requireAll(req)
